From ea0ede201e1bea1ab16be414e48bb1b902c4d56a Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Sat, 14 Dec 2013 21:56:26 -0500 Subject: [PATCH] GtkMenuTracker: add 'special' items Allow the possibility for items to be marked with a special attribute and expose this via GtkTrackerMenuItem. For internal use only. We will use this to implement the special 'Hide', 'Hide Others' and 'Show All' items and the 'Services' submenu in the Mac OS application menu. https://bugzilla.gnome.org/show_bug.cgi?id=720552 --- gtk/gtkmenutrackeritem.c | 10 ++++++++++ gtk/gtkmenutrackeritem.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/gtk/gtkmenutrackeritem.c b/gtk/gtkmenutrackeritem.c index bb9a1f4150..ddcbc0bfc6 100644 --- a/gtk/gtkmenutrackeritem.c +++ b/gtk/gtkmenutrackeritem.c @@ -653,6 +653,16 @@ gtk_menu_tracker_item_get_accel (GtkMenuTrackerItem *self) return gtk_action_muxer_get_primary_accel (GTK_ACTION_MUXER (self->observable), self->action_and_target); } +const gchar * +gtk_menu_tracker_item_get_special (GtkMenuTrackerItem *self) +{ + const gchar *special = NULL; + + g_menu_item_get_attribute (self->item, "x-gtk-private-special", "&s", &special); + + return special; +} + GMenuModel * _gtk_menu_tracker_item_get_submenu (GtkMenuTrackerItem *self) { diff --git a/gtk/gtkmenutrackeritem.h b/gtk/gtkmenutrackeritem.h index 03709d6051..2d9ff16a8d 100644 --- a/gtk/gtkmenutrackeritem.h +++ b/gtk/gtkmenutrackeritem.h @@ -48,6 +48,8 @@ GtkMenuTrackerItem * _gtk_menu_tracker_item_new (GtkActi const gchar *action_namespace, gboolean is_separator); +const gchar * gtk_menu_tracker_item_get_special (GtkMenuTrackerItem *self); + GtkActionObservable * _gtk_menu_tracker_item_get_observable (GtkMenuTrackerItem *self); gboolean gtk_menu_tracker_item_get_is_separator (GtkMenuTrackerItem *self); -- 2.30.2